package com.info33.platform.system.dic.vo;

import com.fasterxml.jackson.annotation.JsonView;
import com.info33.platform.common.mvc.jsonview.object.JsonViewResult;
import com.info33.platform.common.mvc.jsonview.property.JsonViewCreateDate;
import com.info33.platform.common.mvc.jsonview.property.JsonViewId;
import com.info33.platform.common.mvc.jsonview.property.JsonViewSort;
import com.info33.platform.system.dic.entity.SysDic;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.List;

/**
 * 系统 - 字典 v2
 *
 * @author nyj2one
 * @since 2022-11-23 11:08:43
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
public class SysDicVO extends SysDic {

    private static final long serialVersionUID = 461061272253721835L;

    @ApiModelProperty(value = "子元素")
    @JsonView({PcTree.class,
            OpenTree.class})
    private List<SysDicVO> children;

    public interface PcPage extends JsonViewResult, JsonViewId, JsonViewSort, JsonViewCreateDate {
    }

    public interface PcTree extends JsonViewResult, JsonViewId {
    }

    public interface PcList extends JsonViewResult, JsonViewId {
    }

    public interface PcListByMods extends JsonViewResult, JsonViewId {
    }

    public interface OpenList extends JsonViewResult, JsonViewId {
    }

    public interface OpenTree extends JsonViewResult, JsonViewId {
    }

    public interface OpenListByMods extends JsonViewResult, JsonViewId {
    }
}
